<?php

require_once "application.php";

class AdminController extends application {

    public function init() {
        parent::init();
        $this->_helper->layout->setLayout('admin');
    }

    public function indexAction() {
        
    }

    public function placowkiAction() {
        $q = new Application_Model_Placowki();
        $placowki = $q->fetchAll();
        $this->view->lista = $placowki;        
    }
    
    public function placowkaeditAction() {
        $id = (int)$this->_request->getParam('id',0);
        $form = new Application_Form_Placowka();
        $newscats = new Application_Model_Placowki();
        if($id>0) $cats = $newscats->fetchAll('id!='.$id.'');
        else $cats = $newscats->fetchAll('1');
        $categories = array();
        $categories[0] = '--MAIN--';
        foreach($cats as $cat) {
            $catid = $cat->id;
            $categories[$catid] = $cat->nazwa;
        }
        
        if($_POST) {
            if($id==0) {
                $data = $newscats->createRow();
                 
            } else {
                $data = $newscats->getById($id);
                
            }
            
            $data->nazwa = $this->_request->getParam('nazwa');  
            $data->save();
            
            
            $form->populate($data->toArray());
            $this->_redirect('/admin/placowki/');
            
        } else if($id>0) {
            $data = $newscats->getById($id);
            $form->populate($data->toArray());
        } else {
            
        }
        
        $this->view->id=$id;
        $this->view->form = $form;
    }

    public function domenaFinishAction() {

    }

    public function wyswietlFirmaAction() {
        Zend_Loader::loadClass('Firma');
        $firma = new Firma();
        $adapter = $firma->getAll($this->_domainid);
        // tworzymy instancję paginatora
        $paginator = new Zend_Paginator($adapter);
        // ustawiamy ilość wierszy z bazy na stronę
        $paginator->setItemCountPerPage(10);
        // pobieramy parametr, który informuje paginator na której jest stronie i ustawiamy domyślnie stronę 1
        $page = $this->_request->getParam('strona', 1);
        // przekazujemy parametr do paginatora
        $paginator->setCurrentPageNumber($page);
        // przekazujemy tablicę paginatora do widoku
        $this->view->paginator = $paginator;
    }

    public function aktywujFirmaAction() {
        Zend_Loader::loadClass('Firma');
        $firma = new Firma();
        $id = $this->_request->getParam("id");
        $aktywuj = array(
            'active' => 1
        );
        $where = $firma->getAdapter()->quoteInto('id=?', $id);
        $firma->update($aktywuj, $where);
        $this->_redirect('/admin/wyswietl-firma/');
    }

    public function deaktywujFirmaAction() {
        Zend_Loader::loadClass('Firma');
        $firma = new Firma();
        $id = $this->_request->getParam("id");
        $aktywuj = array(
            'active' => 0
        );
        $where = $firma->getAdapter()->quoteInto('id=?', $id);
        $firma->update($aktywuj, $where);
        $this->_redirect('/admin/wyswietl-firma/');
    }

    public function usunFirmaAction() {
        $id = $this->_request->getParam('id');
        Zend_Loader::loadClass('Firma');
        $firma = new Firma();
        $firma->usunFirma($id);
        $this->_redirect('/admin/wyswietl-firma/');
    }

    public function wyswietlDomenaAction() {
        Zend_Loader::loadClass('Domena');
        $domena = new Domena();
        $adapter = $domena->getAll();
        // tworzymy instancję paginatora
        $paginator = new Zend_Paginator($adapter);
        // ustawiamy ilość wierszy z bazy na stronę
        $paginator->setItemCountPerPage(10);
        // pobieramy parametr, który informuje paginator na której jest stronie i ustawiamy domyślnie stronę 1
        $page = $this->_request->getParam('strona', 1);
        // przekazujemy parametr do paginatora
        $paginator->setCurrentPageNumber($page);
        // przekazujemy tablicę paginatora do widoku
        $this->view->paginator = $paginator;
    }

    public function aktywujDomenaAction() {
        Zend_Loader::loadClass('Domena');
        $domena = new Domena();
        $id = $this->_request->getParam("id");
        $aktywuj = array(
            'active' => 1
        );
        $where = $domena->getAdapter()->quoteInto('id=?', $id);
        $domena->update($aktywuj, $where);
        $this->_redirect('/admin/wyswietl-domena/');
    }

    public function deaktywujDomenaAction() {
        Zend_Loader::loadClass('Domena');
        $domena = new Domena();
        $id = $this->_request->getParam("id");
        $aktywuj = array(
            'active' => 0
        );
        $where = $domena->getAdapter()->quoteInto('id=?', $id);
        $domena->update($aktywuj, $where);
        $this->_redirect('/admin/wyswietl-domena/');
    }

    public function usunDomenaAction() {
        $id = $this->_request->getParam("id");
        Zend_Loader::loadClass('Domena');
        $domena = new Domena();
        $domena->usunDomena($id);
        $this->_redirect('/admin/wyswietl-domena/');
    }

    public function edycjaDomenyAction() {
        Zend_Loader::loadClass('Domena');
        $domena = new Domena();
        $id = $this->_request->getParam("id");
        $domena_dane = $domena->find($id)->current();
        $language = 'pl';
        $translator = new Zend_Translate(
                        'array',
                        '../application/resources/languages',
                        $language
        );
        Zend_Validate_Abstract::setDefaultTranslator($translator);
        $form = new Application_Form_Domena($this->_style);
        $form->setAction('/admin/edycja-domeny')
                ->setMethod('post');
        $form->getElement('dodaj')->setLabel("zapisz");
        if ($this->getRequest()->isPost()) {
            if ($form->isValid($_POST)) {
                $id = $form->getValue('id');
                $nazwa = $form->getValue('nazwa');
                $title = $form->getValue('title');
                $description = $form->getValue('description');
                $keywords = $form->getValue('keywords');
                $styl = $form->getValue('style');
                $result = $domena->edycjaDomeny($id, $nazwa, $title, $description, $keywords, $styl);

                if ($result) {
                    return $this->_redirect('/admin/edycja-domeny-finish');
                }
            }
            if ($form->isErrors()) {
                $form->populate($_POST);
            }
        } else {
            $form->populate($domena_dane->toArray());
        }
        $this->view->form = $form;
    }

    public function edycjaDomenyFinishAction() {

    }

    public function listaUzytkownikowAction() {
        Zend_Loader::loadClass('Uzytkownik');
        $uzytkownik = new Uzytkownik();
        $adapter = $uzytkownik->listaUzytkownikow();
        // tworzymy instancję paginatora
        $paginator = new Zend_Paginator($adapter);
        // ustawiamy ilość wierszy z bazy na stronę
        $paginator->setItemCountPerPage(10);
        // pobieramy parametr, który informuje paginator na której jest stronie i ustawiamy domyślnie stronę 1
        $page = $this->_request->getParam('strona', 1);
        // przekazujemy parametr do paginatora
        $paginator->setCurrentPageNumber($page);
        // przekazujemy tablicę paginatora do widoku
        $this->view->paginator = $paginator;
    }

    public function profilAction() {
        Zend_Loader::loadClass('Uzytkownik');
        $uzytkownik = new Uzytkownik();
        $id = $this->_request->getParam("id");
        $this->view->profil = $uzytkownik->showInfoUser($id);
        Zend_Loader::loadClass('Firma');
        $firma = new Firma();
        $adapter = $firma->getAllForUser($this->_domainid, $id);
        // tworzymy instancję paginatora
        $paginator = new Zend_Paginator($adapter);
        // ustawiamy ilość wierszy z bazy na stronę
        $paginator->setItemCountPerPage(10);
        // pobieramy parametr, który informuje paginator na której jest stronie i ustawiamy domyślnie stronę 1
        $page = $this->_request->getParam('strona', 1);
        // przekazujemy parametr do paginatora
        $paginator->setCurrentPageNumber($page);
        // przekazujemy tablicę paginatora do widoku
        $this->view->paginator = $paginator;
    }

    public function zmianaStatusuAction() {
        $id = $this->_request->getParam('id');
        $status = $this->_request->getParam('status');
        Zend_Loader::loadClass('Uzytkownik');
        $uzytkownik = new Uzytkownik();
        $uzytkownik->zmienStatus($id, $status);
        return $this->_redirect('/admin/lista-uzytkownikow');
    }

    public function zmienRoleAction() {
        $id = $this->_request->getParam('id');
        $rola = $this->_request->getParam('rola');
        Zend_Loader::loadClass('Uzytkownik');
        $uzytkownik = new Uzytkownik();
        $uzytkownik->zmienRole($id, $rola);
        return $this->_redirect('/admin/lista-uzytkownikow');
    }

    public function usunUzytkownikaAction() {
        $id = $this->_request->getParam('id');
        Zend_Loader::loadClass('Uzytkownik');
        $uzytkownik = new Uzytkownik();
        $uzytkownik->usunUzytkownika($id);
        return $this->_redirect('/admin/lista-uzytkownikow');
    }

    public function edycjaKonfiguracjiAction() {
        $language = 'pl';
        $translator = new Zend_Translate(
                        'array',
                        '../application/resources/languages',
                        $language
        );
        Zend_Validate_Abstract::setDefaultTranslator($translator);

        Zend_Loader::loadClass('Konfiguracja');
        $konfiguracja = new Konfiguracja();
        $id = $this->_request->getParam("id");

        $dane = array(
            'id' => $id,
            'analytics' => $konfiguracja->getAnalytics($id,true)->wartosc,
            'development' => $konfiguracja->getDevelopment($id,true)->wartosc,
            'regulamin' => $konfiguracja->getRegulamin($id,true)->wartosc,
            'wstep' => $konfiguracja->getWstep($id,true)->wartosc
        );
        
        
        $form = new Application_Form_Konfiguracja();
        $form->setAction('/admin/edycja-konfiguracji')->setMethod('post');
        if ($this->getRequest()->isPost()) {
            if ($form->isValid($_POST)) {
                $id = $form->getValue('id');
                $analytics = $form->getValue('analytics');
                $development = $form->getValue('development');
                $regulamin = $form->getValue('regulamin');
                $wstep = $form->getValue('wstep');
                
                $konfiguracja->setAnalytics($id, $analytics);
                $konfiguracja->setDevelopment($id, $development);
                $konfiguracja->setRegulamin($id, $regulamin);
                $konfiguracja->setWstep($id, $wstep);

                return $this->_redirect('/admin/edycja-konfiguracji-finish');
            }
            if ($form->isErrors()) {
                $form->populate($_POST);
            }
        } else {
            $form->populate($dane);
        }
        $this->view->form = $form;
    }

    public function edycjaKonfiguracjiFinishAction() {

    }

}
